package com.cskaoyan.mapper;

import com.cskaoyan.bean.OrderInfoVO;
import com.cskaoyan.bean.zhao_order_bean.Order;
import com.cskaoyan.bean.zhao_order_bean.OrderExample;
import com.cskaoyan.bean.zhao_order_bean.OrderInfoEntity;
import com.cskaoyan.bean.zhao_order_bean.WxOrderListVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OrderMapper {
    long countByExample(OrderExample example);

    int deleteByExample(OrderExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Order record);

    int insertSelective(Order record);

    List<Order> selectByExample(OrderExample example);

    Order selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByExample(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByPrimaryKeySelective(Order record);

    int updateByPrimaryKey(Order record);

    void ship(@Param("orderId") Integer orderId,
              @Param("shipChannel") String shipChannel,
              @Param("shipSn") String shipSn);

    void refund(Integer orderId);

    void delete(Integer orderId);

    List<WxOrderListVO> selectWxOrderListVOS(@Param("showType") Short showType, @Param("userId") Integer userId);

    void cancel(Integer orderId);

    OrderInfoVO wxDetail(Integer orderId);

    OrderInfoEntity selectOrderInfo(Integer orderId);

    void prepay(Integer orderId);

    void wxRefund(Integer orderId);

    void confirm(Integer orderId);

    void updateCommentStatus(Integer id);
}